package com.yonyou.hxjy.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtils {

    //===============================================指定天数（可提前或延后）同步一次数据获取时间===========================================================

    /**
     * @Authro: Huang
     * @Description: 查询当前日期的前几天开始时间
     * @Date: 2022/11/5 10:58
     * @param day 正数为未来几天，负数为过去几天
     * @return String
     */
    public static String getStartDate(int day) {
        Calendar zero = Calendar.getInstance();
        zero.add(Calendar.DATE, day);
        zero.set(zero.get(Calendar.YEAR), zero.get(Calendar.MONTH), zero.get(Calendar.DATE), 0, 0, 0);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dft.format(zero.getTime());
    }

    /**
     * @Authro: Huang
     * @Description: 查询当前日期的前几天结束时间
     * @Date: 2022/11/5 10:58
     * @param day 正数为未来几天，负数为过去几天
     * @return String
     */
    public static String getEndDate(int day) {
        Calendar zero = Calendar.getInstance();
        zero.add(Calendar.DATE, day);
        zero.set(zero.get(Calendar.YEAR), zero.get(Calendar.MONTH), zero.get(Calendar.DATE), 23, 59, 59);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dft.format(zero.getTime());
    }

    //===============================================一天同步一次数据获取时间===========================================================

    public static String getStartDate() {
        Calendar zero = Calendar.getInstance();
        zero.add(Calendar.DATE, -1);
        zero.set(zero.get(Calendar.YEAR), zero.get(Calendar.MONTH), zero.get(Calendar.DATE), 0, 0, 0);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dft.format(zero.getTime());
    }

    public static String getEndDate() {
        Calendar zero = Calendar.getInstance();
        zero.add(Calendar.DATE, -1);
        zero.set(zero.get(Calendar.YEAR), zero.get(Calendar.MONTH), zero.get(Calendar.DATE), 23, 59, 59);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dft.format(zero.getTime());
    }

    //===============================================10分钟同步一次数据获取时间===========================================================

    /**
     * 开始时间（10分钟前）
     * @return
     */
    public static String getStartDateBy10m() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.MINUTE, -10);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return  dft.format(calendar.getTime());
    }

    /**
     * 结束时间（系统当前时间）
     * @return
     */
    public static String getEndDateBy10m() {
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dateFormat.format(date);
    }

    //================================================60分钟同步一次数据获取时间==========================================================

    public static String getStartDateBy60m() {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(Calendar.MINUTE, -60);
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return  dft.format(calendar.getTime());
    }

    /**
     * 结束时间（系统当前时间）
     * @return
     */
    public static String getEndDateBy60m() {
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return dateFormat.format(date);
    }

}
